home *** CD-ROM | disk | FTP | other *** search
/ Ham Radio 2000 / Ham Radio 2000.iso / ham2000 / tcp_ip / tnos / tnos100s / session.h < prev    next >
C/C++ Source or Header  |  1993-12-23  |  3KB  |  119 lines

  1. /* Mods by PA0GRI */
  2. #ifndef    _SESSION_H
  3. #define    _SESSION_H
  4.  
  5. #include <stdio.h>
  6.  
  7. #ifndef    _GLOBAL_H
  8. #include "global.h"
  9. #endif
  10.  
  11. #ifndef    _PROC_H
  12. #include "proc.h"
  13. #endif
  14.  
  15. #ifndef _HARDWARE_H
  16. #include "hardware.h"
  17. #endif
  18.  
  19.  
  20. #ifndef    _FTPCLI_H
  21. #include "ftpcli.h"
  22. #endif
  23.  
  24. #ifndef    _TELNET_H
  25. #include "telnet.h"
  26. #endif
  27.  
  28. #ifndef _DIRUTIL_H
  29. #include "dirutil.h"
  30. #endif
  31.  
  32. #define    MOREROWS    24    /* rows on screen before --more-- */
  33.  
  34. struct ttystate {
  35.     struct mbuf *line;    /* Line buffer */
  36.     int echo;        /* Keyboard local echoing? */
  37.     int edit;        /* Local editing? */
  38.     int crnl;        /* Translate cr to lf? */
  39. };
  40.  
  41. /* Session control structure; only one entry is used at a time */
  42. struct session {
  43.     int type;
  44. #define    FREE    0
  45. #define    TELNET    1
  46. #define    FTP    2
  47. #define    AX25TNC    3
  48. #define    FINGER    4
  49. #define    PING    5
  50. #define NRSESSION 6
  51. #define    COMMAND    7
  52. #define    MORE    8
  53. #define    HOP    9
  54. #define    TIP    10
  55. #define    PPPPASS    11
  56. #define DIAL    12
  57. #define DQUERY    13
  58. #define DCLIST    14
  59. #define    RLOGIN    15
  60. #define TRACESESSION 16
  61. #define VIEW    17
  62. #define SCRIPT  18
  63. #define REPEAT  19
  64. #define RESOLVE 20
  65. #define DNSQUERY 21
  66.  
  67.     char *name;    /* Name of remote host */
  68.     union {
  69.         struct ftpcli *ftp;
  70.         struct telnet *telnet;
  71.     } cb;
  72.     struct proc *proc;    /* Primary session process (e.g., tn recv) */
  73.     struct proc *proc1;    /* Secondary session process (e.g., tn xmit) */
  74.     struct proc *proc2;    /* Tertiary session process (e.g., upload) */
  75.     int s;            /* Primary network socket (control for FTP) */
  76.     FILE *record;        /* Receive record file */
  77.     char *rfile;        /* Record file name */
  78.     FILE *upload;        /* Send file */
  79.     char *ufile;        /* Upload file name */
  80.     struct ttystate ttystate;
  81.     struct screen *screen;
  82.     int input;        /* Input socket */
  83.     int output;        /* Output socket */
  84.     int flowmode;        /* control "more" mode */
  85.     int row;        /* Rows remaining until "more" */
  86.     int morewait;        /* Output driver is waiting on us */
  87.     int tsavex;        /* Save for x top screen */
  88.     int tsavey;        /* Save for y top screen */
  89.     int bsavex;        /* Save for x bottom screen */
  90.     int bsavey;        /* Save for y bottom screen */
  91.     int split;        /* Signal for split screen */
  92.     struct cur_dirs *curdirs; 
  93.     int index;        /* session # (0 - (Nsessions - 1)) */
  94. };
  95. #define    NULLSESSION    (struct session *)0
  96.  
  97. extern char *Sestypes[];
  98. extern unsigned Nsessions;        /* Maximum number of sessions */
  99. extern struct session *Sessions;    /* Session descriptors themselves */
  100. extern struct session *Current;        /* Always points to current session */
  101. extern struct session *Lastcurr;    /* Last non-command session */
  102. extern struct session *Command;        /* Pointer to command session */
  103.  
  104. /* In session.c: */
  105. void freesession __ARGS((struct session *sp));
  106. struct session *sessptr __ARGS((char *cp));
  107. struct session *newsession __ARGS((char *name,int type,int split));
  108. void upload __ARGS((int unused,void *sp1,void *p));
  109. extern char TooManySessions[];
  110.  
  111. /* In pc.c: */
  112. void swapscreen __ARGS((struct session *old,struct session *new));
  113.  
  114. extern int16 Lport;
  115. #define    ALERT_EOF    1
  116.  
  117.  
  118. #endif    /* _SESSION_H */
  119.